package top;

import entity.User;

public interface Rule {

    long getNewPlayerInitPoints();

    /**
     * 计算胜负已分时双方的得分
     * @param winner 胜者数据
     * @param loser  败者数据
     * @return long[2]: {胜者得分, 败者得分}（正数为加分，负数为扣分）
     */
    long[] calculatePointsWhenWinLost(User winner, User loser);

    /**
     * 计算游戏平局时双方的得分
     * @param a 游戏玩家a的数据
     * @param b 游戏玩家b的数据
     * @return long[2]: {玩家a得分, 玩家b得分}（正数为加分，负数为扣分）
     */
    long[] calculatePointsWhenDraw(User a, User b);

    /**
     * 计算玩家逃跑时双方的得分
     * @param winner 胜者数据
     * @param runner 逃跑者数据
     * @return long[2]: {胜者得分, 逃跑者得分}（正数为加分，负数为扣分）
     */
    long[] calculatePointsWhenRun(User winner, User runner);

}
